Redhat9 To Fedora Core1 With Sata Hard Disk
|
RenameThisPage 페이지 이름에 공백문자가 들어있습니다.
레드햇 9에서 페도라 코어 1으로 (SATA 하드와 IDE 하드를 함께 쓰는 시스템)
1. 서론 ¶미숙한 시스템 관리자라서 항상 OS 업그레이드는 늘 골치거리이다. 내 경우 높은 버전의 그놈이나 KDE를 쓰고 싶은데, OS를 업그레이드하자니 이래저래 걱정이들고, 각각 만을 업그레이드 하자니 여러가지 패키지 의존성 때문에 이 또한 어려워서 한참을 고민한 후 큰 맘먹고 페도라 코어 1으로 업그레이드하기로 결심하고 그 방법을 찾아보았다.
2.1. /proc/cpuinfo ¶processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.60GHz stepping : 9 cpu MHz : 2612.596 cache size : 512 KB physical id : 0 siblings : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid runqueue : 0 bogomips : 5216.66 2.2. /proc/pci ¶
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel Corp. 82865G/PE/P Processor to I/O Controller (rev 2).
Prefetchable 32 bit memory at 0xe8000000 [0xefffffff].
Bus 0, device 1, function 0:
PCI bridge: Intel Corp. 82865G/PE/P Processor to AGP Controller (rev 2).
Master Capable. Latency=64. Min Gnt=12.
Bus 0, device 29, function 0:
USB Controller: Intel Corp. 82801EB USB (rev 2).
IRQ 16.
I/O at 0xbc00 [0xbc1f].
Bus 0, device 29, function 1:
USB Controller: Intel Corp. 82801EB USB (rev 2).
IRQ 19.
I/O at 0xb000 [0xb01f].
Bus 0, device 29, function 2:
USB Controller: Intel Corp. 82801EB USB (rev 2).
IRQ 18.
I/O at 0xb400 [0xb41f].
Bus 0, device 29, function 3:
USB Controller: Intel Corp. 82801EB USB (rev 2).
IRQ 16.
I/O at 0xb800 [0xb81f].
Bus 0, device 29, function 7:
USB Controller: Intel Corp. 82801EB USB2 (rev 2).
IRQ 23.
Non-prefetchable 32 bit memory at 0xf5100000 [0xf51003ff].
Bus 0, device 30, function 0:
PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 194).
Master Capable. No bursts. Min Gnt=6.
Bus 0, device 31, function 0:
ISA bridge: Intel Corp. 82801EB LPC Interface Controller (rev 2).
Bus 0, device 31, function 2:
IDE interface: Intel Corp. 82801EB Ultra ATA Storage Controller (rev 2).
IRQ 18.
I/O at 0xf000 [0xf00f].
Bus 0, device 31, function 3:
SMBus: Intel Corp. 82801EB SMBus Controller (rev 2).
IRQ 17.
I/O at 0x1400 [0x141f].
Bus 0, device 31, function 5:
Multimedia audio controller: Intel Corp. 82801EB AC'97 Audio Controller (rev 2).
IRQ 17.
I/O at 0xd800 [0xd8ff].
I/O at 0xdc00 [0xdc3f].
Non-prefetchable 32 bit memory at 0xf5101000 [0xf51011ff].
Non-prefetchable 32 bit memory at 0xf5102000 [0xf51020ff].
Bus 1, device 0, function 0:
VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 4).
IRQ 16.
Master Capable. Latency=32. Min Gnt=16.Max Lat=32.
Prefetchable 32 bit memory at 0xf0000000 [0xf1ffffff].
Non-prefetchable 32 bit memory at 0xf2000000 [0xf2003fff].
Non-prefetchable 32 bit memory at 0xf3000000 [0xf37fffff].
Bus 2, device 5, function 0:
FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (rev 0).
IRQ 21.
Master Capable. Latency=32. Min Gnt=2.Max Lat=4.
Non-prefetchable 32 bit memory at 0xf5004000 [0xf50047ff].
Non-prefetchable 32 bit memory at 0xf5000000 [0xf5003fff].
Bus 2, device 8, function 0:
Ethernet controller: PCI device 8086:1050 (Intel Corp.) (rev 2).
IRQ 20.
Master Capable. Latency=32. Min Gnt=8.Max Lat=56.
Non-prefetchable 32 bit memory at 0xf5005000 [0xf5005fff].
I/O at 0xa000 [0xa03f].
2.3. /etc/modules.conf ¶alias scsi_hostadapter ata_piix alias eth0 e100 alias usb-controller ehci-hcd alias usb-controller1 usb-uhci alias ieee1394-controller ohci1394 # --- BEGIN: Generated by ALSACONF, do not edit. --- # --- ALSACONF verion 1.0.3 --- alias char-major-116 snd alias char-major-14 soundcore alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss alias snd-card-0 snd-intel8x0 alias sound-slot-0 snd-intel8x0 # --- END: Generated by ALSACONF, do not edit. --- 3. 가능한 방법들 ¶먼저 페도라 배포판 CD가 제공하는 "업그레이드 설치"를 이용해보려고 했으나, 내 시스템의 특수성 때문에 실패하고 말았다. 내 시스템에는 Redhat 9가 깔려있는 SATA 하드 1개와 백업용 IDE 하드 1개가 동시에 연결되어있다. ReHat 9를 쓸 당시에는 SATA 하드는 BIOS 셋업에서 PRIMARY MASTER IDE로 설정하고, 백업용 IDE 하드는 SECONDARY MASTER IDE로 선택함으로써 설치 및 부팅에 아무 문제가 없었다. Redhat 9 가 탑재하고 있는 커널 2.4.20 시리즈에는 확실하지는 않지만 아마도 SATA 관련 지원이 커널내부에 포함되었었던것 같다. 실제로 Redhat 9 bootable CD로 인스톨 시에는 아무런 문제가 발생하지 않았고, 내 SATA 하드를 /dev/hda로 인식했었다. 그러나, Fedora bootable CD는 SATA하드를 인식하지 못하거나 /dev/sda로 인식하여 업그레이드를 할 수 없었다. 이런 이유로 Fedora Core 1 bootable CD로 업그레이드하는 것은 포기하였고, 구글과 KLDP, GNOME wiki의 도움으로 새로운 방법을 찾을 수 있었다.
그것은 Yum을 이용하는 것이었다. 자세한 내용은 레퍼런스1을 참조하라. 단, redhat repository는 좀 느려서 12시간 넘게 다운로드를 받아야했다. 사람마다 다르지만, base repository는 rpmfind.net 서버가 내 경우에는 가장 빨랐던것 같다. 참고로 내가 사용했던 yum.conf를 소개한다.
/etc/yum.conf
# Yum config file from http://www.xades.com/proj/fedora_repos.html # Put this file at /etc/yum.conf [main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=fedora-release tolerant=1 exactarch=1 [base] name=Fedora Core 1 - $basearch - Base baseurl=http://rpmfind.net/linux/fedora/core/1/$basearch/ [updates-released] name=Fedora Core 1 - $basearch - Released Updates baseurl=http://rpmfind.net/linux/fedora/core/updates/1/$basearch/ http://ftp.dulug.duke.edu/pub/fedora/linux/core/updates/1/$basearch/ ftp://ftp.tu-chemnitz.de/pub/linux/fedora-core/updates/1/$basearch/ ftp://ftp.linux.ncsu.edu/pub/fedora/linux/core/updates/1/$basearch/ [fedora-extras] name=Fedora Extras 1 - $basearch - Extra Packages baseurl=ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora/1/$basearch/yum/stable/ http://download.fedora.us/fedora/fedora/1/$basearch/yum/stable/ gpgcheck=1 failovermethod=priority [livna-stable] name=Livna 3rd party packages with questionable (in USA) licenses -- use at your own risk baseurl=http://rpm.livna.org/fedora/1/$basearch/yum/stable 레퍼런스
4. 문제점과 해결책 ¶이렇게 많은 시간을 들여 업그레이드를 했으나, 여전히 걱정되는 점들이 있어서 부팅하는데 망설여졌다.
그것은 SATA 하드의 인식과 사운드 카드 문제 등이었는데, 실제로 yum을 통한 fedora 업그레이드 후 SATA 하드 인식을 위해 꽤 많은 시간을 보내야 했다. 사운드 카드는 alsa 버전을 다운그레이드 하거나 업그레이드 함으로써 쉽게 인식할 수 있을 거라고 생각되었으며 그다지 중요한 문제는 아니었다.
4.1. SATA 하드의 인식 ¶가장 큰 문제는 Redhat 9에서는 SATA 하드를 /dev/hda로 인식했었다는 점인데, (만약 Redhat 9에서 /dev/sda로 인식했었다면 그다지 걱정스럽지 않았을텐데...) 이 때문에 방법을 찾기가 상당히 어려웠다. 구글이 알려주는 대부분의 문서는 막연히 커널 컴파일을 다시하면 되지않을까? 였는데, 웬지 미덥지 않아서 더 검색을 해보았다. 그 결과 문제의 원인을 제대로 지적한
Bugzilla 리포트를 보게 되었다. 앞서 얘기한 바와 같이 Redhat 9 커널의 경우 SATA관련 드라이버가 커널에 통째로 들어가 있는 반면 Fedora의 경우에는 모듈로 존재한다는 것이다. 그러나, 원인을 알았다하더라도 지식이 부족한 나로써는 해결책을 찾을 수 없었다. 또 다시 구글 검색! 그 결과 mkinitrd라는 명령을 알게 되었고, 커널 부팅 시퀀스에 대해 조금이나마 이해하게 되었다. 해결책은 다음과 같다.
/etc/modules.conf 내에
alias scsi_hostadapter ata_piix 위 한 줄을 추가하고,
mkinitrd <만들 램디스크 이미지 파일이름> <관련 모듈 트리 패쓰; /lib/modules/ 아래 디렉토리 이름> ex) mkinitrd /boot/initrd-2.4.22-1.2174.nptlsmp-myimg.img 2.4.22-1.2174.nptlsmp 하면 새로운 램디스크 이미지가 만들어 지는데, grub.conf를 수정하여 이 이미지로 부팅되도록
하면 된다. 그 결과, 페도라는 내 SATA 하드를 /dev/sda로 내 IDE하드를 /dev/hdc로 인식하였다.
만약 SATA 하드의 각 파티션에 label을 부여해서 label을 사용하도록 fstab이 꾸려져 있다면, label을
사용할 수 없는 스왑파티션을 제외하고는 제대로 마운트 되었을 것이다. 스왑 파티션은 직접 디바이스
이름을 /dev/sda? 와 같이 고쳐주어 제대로 마운트 되도록 바꾸면 된다.
4.4. mysqld 서비스 스크립트의 사소한 문제 ¶service mysqld start 혹은 restart 실행시 서버는 뜨는데, 타임 아웃 에러를 내뱄는 현상이 나타났다. 알고보니 서버 띠운 후 서버가 동작하는지 ping 명령을 먹이는데 root 계정으로 admin 프로그램을 실행하는 것이었다. root 계정이 db 서버에 등록되지 않았기 때문에 ping에 대한 응답은 오류메시지였다. 이러한 오류메시지로 인해서 제대로 동작이 안되는 줄 알고 타임아웃 에러를 화면에 뿌리는 것이었는데, mysql 계정으로 ping을 실행하도록 스크립트를 고침으로써 미관상안좋은 에러메시지가 화면을 오염시키는 것을 막을 수 있었다.
/etc/rc.d/init.d/mysqld 중 원래 내용 `/usr/bin/mysqladmin ping 2> /dev/null` 바뀐 내용 `/usr/bin/mysqladmin -u mysql ping 2> /dev/null` 4.5. smartd 서비스가 동작 안함 ¶/etc/smartd.conf 파일을 보면 기본값이 /dev/hda를 모니터하도록 되어있다.
그러나, 나는 /dev/hda 대신 /dev/sda 가 있기 때문에 이것을 /dev/sda로 바꾸어 주었으나,
역시 동작하지 않았다. 아마도 현재 버전이 sata 하드를 지원하지 않는 것 같다. 그래서.
/dev/sda 해당 줄은 주석처리하고 내 백업 하드인 /dev/hdc를 모니터하도록 바꾸었다. 결과는
성공적인데, 사실 smartd가 구체적으로 어떤 도움이 되는 지는 잘 모르겠다.
4.6. alsa sound 문제 ¶페도라로 업그레이드했을때, 기본을 깔려있던 alsa 버전은 1.0.2 였던것 같다. 그런데, 소리가 안났다.
믹서 설정이나 그 밖의 것들도 모두 정상적으로 보였는데, 소리가 안났다. 예전에도 이런적이 있어서, 0.9 대 버전의 alsa를 인스톨 했었는데 (0.9 버전은 훌륭히 동작한다), 더 높은 버전을 이용해보는 것도 좋을 것 같아서 alsa 사이트에서 직접 1.0.3 버전의 소스를 받아다가 컴파일 하였다. 물론 util/buildrpm 스크립트를 이용하여 패키징하였다. 인스톨한 alsa 관련 패키지는 다음과 같다.
4.7. samba 한글 문제 ¶페도라가 utf-8를 공식 인코딩을 사용한다는 얘기를 얼핏들었는데, 이게 약간 혼란스러웠다.
이게 내 한글로 된 파일 이름에 어떤 영향을 줄 지, 맨페이지는, 또 samba에는 ...
나는 여전히 EUC-KR를 쓰고 있으며, 한텀을 사용한다. 터미널에서 맨페이지를 볼 수 없지만 gman/yelp로 gui 상태에서 맨페이지를 볼 수 있어 그다지 불편하지는 않다. 문제는 samba에서 일어났다. 내가 utf-8로 했었다면 안일어났을지는 모르겠다. 아무튼 해결책은 의외로 간단했다.
문제는 윈도우 XP 클라이언트에서 내 홈디렉토리를 네트웍드라이브연결하면 한글 파일이름이 깨지는 것이었다. 해결책은 /etc/samba/smb.conf의 global 탭에
unix charset = euc-kr 이 한 줄을 추가하는 것이다.
unicode와 관련한 자세한 내용은 삼바 하우투 3.0을 참조하길 바란다.
|
Stop searching forever. Happiness is unattainable. |











![[http]](/imgs/http.png)